//
// Created by Administrator on 2023/11/9.
/*OJ:http://ybt.ssoier.cn:8088/problem_show.php?pid=1323
 *
 * 1323：【例6.5】活动选择

时间限制: 1000 ms         内存限制: 65536 KB
【题目描述】

学校在最近几天有n 个活动，这些活动都需要使用学校的大礼堂，在同一时间，礼堂只能被一个活动使用。由于有些活动时间上有冲突，学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。

现在给出n 个活动使用礼堂的起始时间begini和结束时间endi(begini<endi) ，请你帮助办公室人员安排一些活动来使用礼堂，要求安排的活动尽量多。
【输入】
第一行一个整数n(n≤1000)

接下来的n 行，每行两个整数，第一个begini，第二个是endi(begini<endi≤32767)
【输出】
输出最多能安排的活动个数。
 in:
11
3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13
 out:
4
 * */
//

#include <iostream>
#include <algorithm>

using namespace std;
struct event
{
    int a;
    int b;
};

bool cmp(event x, event y)
{
    return x.a < y.a;
}

int main()
{
    int n = 11;
    cin>>n;
    event events[n];
    for (int i = 0; i < n; ++i)
        cin >> events[i].a >> events[i].b;
    sort(events, events+n, cmp);
    event per=events[0];
    int ret=0;
    for (int j = 1; j < n; ++j)
    {
        if(per.b<=events[j].a)
        {
            per=events[j];
            ++ret;
        }
        cout<<events[j].a<<' '<<events[j].b<<endl;
    }
    cout<<ret;
    return 0;
}